#ifndef _FINGERPRINT_DEVICE_HEAD_H
#define _FINGERPRINT_DEVICE_HEAD_H
#include "linux-uart.h"
#include "Fingerprint-protocol.h"

class FingerPrintDevice
{
public:
    FingerPrintDevice(const string &device);
    bool sendPacket(const vector<uint8_t> &packet);
    bool recvPacket(vector<uint8_t> &packet);
    // 清空指纹库
    bool clearFingerPrintLib(void);
    // 删除指纹
    bool deleteFingerprint(const uint16_t pos);

    // 创建握手操作
    bool handshake(void);
    // 创建探测指纹
    bool detectImage(void);
    // 生成指纹特征码
    bool makeImageFeature(uint8_t bufferID);
    // 合成图像模板
    bool generateImageTemplate(void);
    // 存储模版
    bool storeImageTemplate(uint16_t pos);
    // 录指纹
    bool recordFingerprint(uint16_t pos);
    // 搜索指纹
    bool searchFingerPrint(uint16_t &pos);
    // 验证指纹
    bool verfiyFingerPrint(uint16_t &pos);

    // 指纹模块是否触摸
    bool isTouchState(void);

private:
    LinuxUart uart;
};

#endif